package com.doitedu.core
import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @Date: 22.6.28 
 * @Author: HANGGE
 * @qq: 598196583
 * @Tips: 学大数据 ,到多易教育
 * @Description:
 *    spark编程入门程序
 *    1 获取spark编程的环境  SparkContext
 *    2 需要传入一个配置对象  SparkConf   1) 运行Master 2) 程序名
 *    3 读取本地文件
 *    4 调用方法(算子) 处理数据   [数据:理解成迭代器]
 *    5 输出结果  打印
 *    6 释放资源 sc.stop
 */
object C01BaseDemo {
  // 设置代码运行日志级别
  Logger.getLogger("org").setLevel(Level.ERROR)
  def main(args: Array[String]): Unit = {
    // 1使用spark编程  首先  spark编程的入口 [环境]
    /**
     * SparkConf 用于用户的参数设置
     *  运行模式 job名
     */
    val conf = new SparkConf()

    /**
     * 程序运行必须设置运行模式
     *   conf.setMaster("local")  等同于  conf.set("spark.master", "")
     *  local       在本地使用一个核处理数据
     *  local[4]   在本地使用四个核处理数据
     */
    conf
      .setMaster("local")
      .setAppName("demo01")   // 设置程序名
   // conf.set("spark.master", "")
    val sc = new SparkContext(conf)

    // 2加载数据源
    /**
     * RDD 理解成 Iterator
     */
    val data: RDD[String] = sc.textFile("doit32-spark-base/data/a.txt")
    // 3计算逻辑 处理数据
    val res: RDD[String] = data.map(line => line + "hello")

    // 4输出结果 /存储到磁盘 /HDFS /mysql /打印
    res.foreach(println)


    // 回收环境
    sc.stop()


  }

}
